20170521

日期格式转换

  1. 将国际标准格式转换为"年/月/日"

  2. 将日期格式将日期格式"20/05/2017" 转为 "2017-05-20"

练习1

formatDate1 (data) {
  // 将国际标准时间转换成'年/月/日'
  // 1.创建一个日期
  // 2.分别获取年月日的值
  // 3.将年月日的值拼接成指定格式
  let dateStr = new Date(data)

  let year = dateStr.getFullYear()
  let month = dateStr.getMonth() + 1
  let day = dateStr.getDate()

  // es6 模版字符串 什么时候会用到?
  console.log(`${year}/${month}/${day}`)
  return `${year}/${month}/${day}`
}

思考:模版字符串使用场景?

  • 字符串里解析变量、函数、表达式

  • 多行 trim()、特殊符号转义

  • 嵌套使用

参考:

练习2

formatDate2 (data) {
  // 将日期格式 "20/05/2017" 转为 "2017-05-20"
  let str = data
  let newStr = ''
  // 1.split() 分割字符串 
  // 2.数组倒序reverse() 
  // 3.将数组转换成字符串
  newStr = str.split('/').reverse().join('-')
  return newStr
}

数组常用的属性和方法

其实看完文档基本上就忘记了,所以要对内容进行分类方便以后要用的时候方便查找 https://developer.mozilla.org...

总结每种操作对应的方法、对原数组有无更改

  • 更改了原数组的内容和长度:push() unshift()/pop() shift() splice()

  • 不改变原数组长内容和长度:concat() slice() forEach() map()

1. 添加元素

  • push() 从数组末尾添加元素,返回新数组的length
    [].push.call() 添加对象

  • unshift() 将元素添加到数组开头,并返回新数组长度

  • splice()

2. 删除元素

  • pop() 从数组中删除最后一个元素,并返回该元素的值,数组为空返回undefined

  • shift() 从数组中删除第一个元素,并返回该元素的值, 数组为空返回undefined

  • splice()

3. 合并数组

  • push() Array.prototype.push.apply(arr1, arr2) 将arr2添加到arr1

  • concat() 合并多个数组,返回一个新数组,不会更改原数组

4. 过滤数组

  • fliter() 以某种规则筛选出通过的元素,返回一个新数组

5. 查找元素

  • find()

  • findIndex()

6. 遍历数组

  • forEach() 对数组每个元素执行一次函数 没有办法终止或跳出循环

  • map() 给数组中的每个元素执行某种操作,不改变原数组,返回值为一个新数组

  • forEach()和map() 的区别

7. 排序

  • sort()

  • reverse()

8. 类型转换

  • join() 数组-字符串

9. 浅拷贝数组

  • slice() [start, end) 选择一部分拷贝到一个新数组对象,原数组不改变,start从0开始计算
    将类数组对象和集合转换成一个数组,只需将方法绑定到这个对象上即可Array.prototype.slice.call(Object)

10. 迭代器

  • keys()

  • entries()

11. 计算

  • reduce()

经常忘记的具体用法

push 添加元素

描述:push() 从数组末尾添加元素,返回新数组的length

  • 合并数组Array.prototype.push.apply(arr1, arr2) 将arr2添加到arr1

  • 像数组一样给对象添加对象

var obj = {
  length: 0,
  addElem: function addElem (elem) {
    [].push.call(this, elem)
  }
}

obj.addElem({
  a: 1
})
obj.addElem({
  b: 2
})
console.log(obj.length, obj) //2 Object

slice 浅拷贝数组

  • [start, end) 选择一部分拷贝到一个新数组对象,原数组不改变,start从0开始计算

  • 将类数组对象和集合转换成一个数组,只需将方法绑定到这个对象上即可Array.prototype.slice.call(Object)

filter 过滤数组

// 以某种规则筛选出通过的元素,返回一个新数组
let arr = [1, 2, 3, 4]
function fn (value) {
  return value % 2 === 0
}
console.log(fn(4)) // true
console.log(fn(3)) // false
console.log(arr.filter(fn)) // 2, 4

Hayley
220 声望9 粉丝

人生因选择而不同,因坚持而精彩


下一篇 »
布局